package com.taxx.dto;

import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * 收入信息报送DTO
 */
@Data
public class TaxIncomeReportDTO {
    
    private Long id;
    
    @NotBlank(message = "纳税人名称不能为空")
    private String taxpayerName;
    
    @NotBlank(message = "统一社会信用代码不能为空")
    private String creditCode;
    
    @NotBlank(message = "商户ID不能为空")
    private String merchantId;
    
    @NotBlank(message = "商户名称不能为空")
    private String merchantName;
    
    @NotNull(message = "收入所属期起不能为空")
    private LocalDate startTime;
    
    @NotNull(message = "收入所属期止不能为空")
    private LocalDate endTime;
    
    @NotNull(message = "是否办理市场主体登记不能为空")
    private Integer hasRegistration;
    
    // 收入相关字段
    private BigDecimal goodsIncome;
    private BigDecimal goodsRefund;
    private BigDecimal intangibleIncome;
    private BigDecimal intangibleRefund;
    private BigDecimal serviceIncome;
    private BigDecimal serviceRefund;
    private BigDecimal unregisteredIncome;
    private BigDecimal unregisteredRefund;
    private BigDecimal netIncomeGoods;
    private BigDecimal netIncomeTransport;
    private BigDecimal netIncomeLabor;
    private BigDecimal netIncomeRoyalty;
    private BigDecimal netIncomeFranchise;
    private BigDecimal otherNetIncome;
    private BigDecimal platformCommission;
    private Integer transactionCount;
    
    private LocalDate reportTime;
}
